{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import torch\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "%run 4.3.2-common.ipynb"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Principal values are: tensor([   62.6172, 48991.0547])\n",
      "One principal value will be much larger\n",
      "than the other - indicating data points are\n",
      "spread more or less along a straight line\n",
      "That straight line is the principal axis\n",
      "It should be along y = 2x showing the\n",
      " correlation in the data\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkcAAAHHCAYAAAC1G/yyAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjAsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8GearUAAAgAElEQVR4nOzdeVzU1f7H8dcwAgIyuOEGKC5laOWaioXirVzS0oAwSzPrZpaW2M1+t82lW9mu1M2rWZntKk15tTK9JoZp5VaZolliKO4baCrIzPf3B83IyACDsvN+Ph7zSL5zvt/vmbndeHu+53yOyTAMAxEREREBwKuiOyAiIiJSmSgciYiIiOSjcCQiIiKSj8KRiIiISD4KRyIiIiL5KByJiIiI5KNwJCIiIpKPwpGIiIhIPgpHIiIiIvkoHIlUAeHh4dx5550XfO6gQYOKbZecnIzJZCI5OfmC7lOVXcz3W1amTJmCyWS64POjo6OJjo4uvQ6J1CAKRyLl7J133sFkMrF+/Xq370dHR3P55ZeXc6/kQuzdu5cpU6bw448/VnRXSs2pU6eYMmVKpQnJa9asYcqUKRw/fryiuyI1iMKRSBWwfft25syZU9HdkPPs3buXqVOnVrtwNHXq1EoVjqZOnapwJOVK4UikCvD19cXb27uiu1Gp/Pnnn4W+d+rUqXLsiYhUNwpHIlWAuzkxP//8M71798bPz4/Q0FCefvpp5s6di8lkYteuXQWusXr1arp160bt2rVp1aoV7777bpH3nDx5Mt7e3hw6dKjAe6NHj6Zu3bqcOXOmyGts27aN+Ph4goOD8fPzo23btjz++OMubTZt2sSAAQOwWCzUqVOHa6+9lu+++86ljeNR5KpVq7j//vtp1KgRoaGhwLnHkBs2bKBXr174+/vz2GOPAZCdnc3kyZNp06YNvr6+hIWF8cgjj5CdnV1kv48ePcrDDz/MFVdcQZ06dbBYLAwYMICffvrJ2SY5OZmrrroKgFGjRmEymTCZTLzzzjvONt9//z39+/cnKCgIf39/evfuzbffflvgfqtXr+aqq66idu3atG7dmtmzZxfZv/O98cYbtG7dGj8/P7p160ZKSkqBNjk5OUyaNIkuXboQFBREQEAAUVFRrFy50tlm165dBAcHAzB16lTnZ5oyZQqQ9+/cnXfeSatWrahduzZNmjThrrvu4siRIy73OnHiBAkJCYSHh+Pr60ujRo24/vrr2bhxo0u74r6fKVOmMHHiRABatmzp7I+7f79FSlOtiu6ASE2VmZnJ4cOHCxw/e/ZssedmZGTQp08fTCYTjz76KAEBAbz55pv4+vq6bf/bb78RFxfH3XffzciRI3n77be588476dKlC+3bt3d7zogRI3jqqaeYP38+48aNcx7PyckhKSmJ2NhYateuXWgff/75Z6KiovD29mb06NGEh4fz+++/s3jxYp555hkAtmzZQlRUFBaLhUceeQRvb29mz55NdHQ0q1atonv37i7XvP/++wkODmbSpEkuI0dHjhxhwIAB3HrrrQwfPpzGjRtjt9u56aabWL16NaNHjyYiIoLNmzczffp0fv31Vz777LNC+75z504+++wzbrnlFlq2bMmBAweYPXs2vXv3ZuvWrTRr1oyIiAieeuopJk2axOjRo4mKigKgZ8+eAHz99dcMGDCALl26MHnyZLy8vJg7dy5/+9vfSElJoVu3bgBs3ryZvn37EhwczJQpU8jNzWXy5Mk0bty40P7l99Zbb3HvvffSs2dPEhIS2LlzJzfddBP169cnLCzM2S4rK4s333yTYcOGcc8993DixAneeust+vXrxw8//EDHjh0JDg7mP//5D/fddx8333wzMTExAFx55ZUALF++nJ07dzJq1CiaNGnCli1beOONN9iyZQvfffedcwL5mDFjSEpKYty4cbRr144jR46wevVqUlNT6dy5s8ffT0xMDL/++isfffQR06dPp2HDhgDOACdSZgwRKVdz5841gCJf7du3dzmnRYsWxsiRI50/P/DAA4bJZDI2bdrkPHbkyBGjfv36BmCkpaW5nAsY33zzjfPYwYMHDV9fX+Mf//iH89jKlSsNwFi5cqXzWGRkpNG9e3eXvlit1gLt3OnVq5cRGBho/PHHHy7H7Xa7889DhgwxfHx8jN9//915bO/evUZgYKDRq1evAt/ZNddcY+Tm5rpcr3fv3gZgzJo1y+X4e++9Z3h5eRkpKSkux2fNmmUAxrfffus8dv73e+bMGcNms7mcl5aWZvj6+hpPPfWU89i6desMwJg7d26Bz3jJJZcY/fr1c/m8p06dMlq2bGlcf/31Lt9B7dq1Xb6nrVu3Gmaz2SjuP9E5OTlGo0aNjI4dOxrZ2dnO42+88YYB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7TXncVVVlYmKijLLly93njt9+rQJDg42L7/8sjHGmI8++shIMh988IEz5s033zQWi8WUlJR4rvCt2BdffGEkmXfeeccYc6kO2rdvb7Zs2eKMOXLkiJFk8vLyjDGN+0zzB7QctVLl5eXq0qWL8zgvL0833XSTgoKCnOcSEhJ09OhRff31186YMWPGuN0nISFBeXl5nil0G5SXl6dBgwYpMjLSeS4hIUF2u12HDx92xlAvLef8+fPat2+f2+84ICBAY8aM4XfsJUVFRSotLXWrk/DwcA0fPtxZJ3l5eerUqZOGDRvmjBkzZowCAgK0Z88ej5e5NSovL5ck53fJvn37dOHCBbd6GTBggGJiYtzqpaHPNH9ActQKffzxx1q1apXuuece57nS0lK3P6ySnMelpaX1xlRfR/O7nHqx2+06e/asZwraiv3rX/+Sw+Hgz74Pqf6911cnpaWl6tatm9v1du3aqUuXLtRbM6iqqlJqaqp+8pOfaODAgZIu/c6DgoJqjJ/8br009JnmD0iOfNiCBQtksVjqfRUWFrq9p6SkRImJiZo4caJmzpzppZK3bt+nXgDAn8yePVsFBQXatGmTt4viFa1vQ5RWZN68eZo+fXq9MX379nX+94kTJzRq1CiNHDnSbaC1JEVFRdWYUVB9HBUVVW9M9XVc0tR6qU9UVFSNWVGNrRer1arQ0NBGlhp16dq1qwIDA/mz70Oqf+9lZWXq3r2783xZWZmGDBnijPnugPmLFy/q1KlT1NtlmjNnjnOAu81mc56PiorS+fPndfr0abfWI9e/K435TPMHtBz5sIiICA0YMKDeV/UYopKSEsXHx2vo0KFav369AgLcqzY2NlbvvvuuLly44DyXnZ2t/v37q3Pnzs6YHTt2uL0vOztbsbGxLfyk/qUp9dKQ2NhYHTp0yO1DPjs7W1arVddcc40zhnppOUFBQRo6dKjb77iqqko7duzgd+wlffr0UVRUlFud2O127dmzx1knsbGxOn36tPbt2+eM2blzp6qqqjR8+HCPl7k1MMZozpw5eu2117Rz50716dPH7frQoUPVvn17t3o5evSojh075lYvDX2m+QVvjwjH5fv888/NlVdeaUaPHm0+//xzc/LkSeer2unTp01kZKS58847TUFBgdm0aZMJCwsza9eudcb8/e9/N+3atTMrVqwwR44cMYsXLzbt27c3hw4d8sZjtQqfffaZyc/PN08++aTp0KGDyc/PN/n5+aaiosIYY8zFixfNwIEDzdixY83+/ftNVlaWiYiIMAsXLnTe49NPPzVhYWFm/vz55siRI+a5554zgYGBJisry1uP1eps2rTJBAcHmw0bNpiPPvrIzJo1y3Tq1Mltxg2aV0VFhfPvgyTzhz/8weTn55vPPvvMGGPM008/bTp16mT+9re/mYMHD5px48aZPn36mLNnzzrvkZiYaH784x+bPXv2mPfee89cddVVZsqUKd56JL933333mfDwcJOTk+P2PfLvf//bGXPvvfeamJgYs3PnTrN3714TGxtrYmNjndcb85nmD0iOWoH169cbSbW+XB04cMDceOONJjg42PTs2dM8/fTTNe61efNm88Mf/tAEBQWZa6+91rzxxhueeoxW6a677qq1Xnbt2uWMKS4uNj/96U9NaGio6dq1q5k3b565cOGC23127dplhgwZYoKCgkzfvn3N+vXrPfsgbcCqVatMTEyMCQoKMjfccIN5//33vV2kVm3Xrl21/t246667jDGXpvM//vjjJjIy0gQHB5vRo0ebo0ePut3jq6/aRnNuAAACvUlEQVS+MlOmTDEdOnQwVqvV3H333c5/eKDp6voecf28OXv2rLn//vtN586dTVhYmLn99tvd/iFuTOM+03ydxRhjPNhQBQAA4NMYcwQAAOCC5AgAAMAFyREAAIALkiMAAAAXJEcAAAAuSI4AAABckBwBAAC4IDkCAABwQXIEAN+Rk5Oj6667TsHBwbryyiu1YcMGbxcJgAeRHAGAi6KiIiUlJWnUqFHav3+/UlNTNWPGDL311lveLhoAD2H7EABtypdffqlBgwbpgQce0KOPPipJ2r17t+Lj4/Xmm2/q7bff1htvvKGCggLne37xi1/o9OnTysrK8laxAXgQLUcA2pSIiAi9+OKLWrJkifbu3auKigrdeeedmjNnjkaPHq28vDyNGTPG7T0JCQnKy8vzUokBeFo7bxcAADzt1ltv1cyZMzVt2jQNGzZMV1xxhZYuXSpJKi0tVWRkpFt8ZGSk7Ha7zp49q9DQUG8UGYAH0XIEoE1asWKFLl68qC1btugvf/mLgoODvV0kAD6C5AhAm/TJJ5/oxIkTqqqqUnFxsfN8VFSUysrK3GLLyspktVppNQLaCLrVALQ558+f1y9/+UtNnjxZ/fv314wZM3To0CF169ZNsbGx2r59u1t8dna2YmNjvVRaAJ7GbDUAbc78+fOVkZGhAwcOqEOHDrr55psVHh6ubdu2qaioSAMHDtTs2bP1q1/9Sjt37tQDDzygN954QwkJCd4uOgAPIDkC0Kbk5OTolltu0a5du3TjjTdKkoqLizV48GA9/fTTuu+++5STk6MHH3xQH330kWw2mx5//HFNnz7duwUH4DEkRwAAAC4YkA0AAOCC5AgAAMAFyREAAIALkiMAAAAXJEcAAAAuSI4AAABckBwBAAC4IDkCAABwQXIEAADgguQIAADABckRAACAC5IjAAAAF/8f06jTH9dJR+8AAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "torch.manual_seed(42)\n",
    "N = 100\n",
    "# We create a random feature vector\n",
    "x_0 = torch.normal(0, 100, (N,))\n",
    "\n",
    "# Then we create another feature vector which is\n",
    "# highly correlated with the previous feature:\n",
    "# x1 = 2 * x0.\n",
    "# We add random noise to this second feature.\n",
    "x_1 = 2 * x_0 + torch.normal(0, 20, (N,))\n",
    "\n",
    "# Create the data matrix with x0, x1 as columns\n",
    "X = torch.column_stack((x_0, x_1))\n",
    "\n",
    "# Perform PCA\n",
    "# One principal value will be >> than the other\n",
    "# indicating data points are spread more or less\n",
    "# along a straight line. That straight line will\n",
    "# be the principal axis, given by the eigenvector\n",
    "# corresponding to the large eigenvalue.\n",
    "# The principal axis should match y = 2x.\n",
    "principal_values, principal_components = pca(X)\n",
    "\n",
    "principal_values = principal_values.real\n",
    "principal_components = principal_components.real\n",
    "\n",
    "print(\"Principal values are: {}\\n\"\n",
    "      \"One principal value will be much larger\\n\"\n",
    "      \"than the other - indicating data points are\\n\"\n",
    "      \"spread more or less along a straight line\\n\"\n",
    "      \"That straight line is the principal axis\\n\"\n",
    "      \"It should be along y = 2x showing the\\n\"\n",
    "      \" correlation in the data\".format(principal_values))\n",
    "\n",
    "\n",
    "plt.figure()\n",
    "\n",
    "# Plot x0 and x1 along X and Y axes respectively.\n",
    "# Since they are correlated, the points will *not*\n",
    "# be spread uniformly in the X-Y plane.\n",
    "# Rather they will be clustered around the curve\n",
    "# capturing the relationship between x0 and x1\n",
    "# (in this case the straight line y = 2x)\n",
    "plt.scatter(X[:, 0], X[: , 1], color=\"green\")\n",
    "plt.title('Highly correlated dataset')\n",
    "plt.xlabel('x0')\n",
    "plt.ylabel('x1')\n",
    "\n",
    "\n",
    "# Assert that the principal components are orthogonal\n",
    "assert torch.allclose(torch.matmul(principal_components.T,\n",
    "                          principal_components),\n",
    "                   torch.eye(X.shape[1])) \n",
    "\n",
    "# Find the index with highest principal value\n",
    "major_index = np.argmax(principal_values)\n",
    "minor_index = np.argmin(principal_values)\n",
    "\n",
    "# Plot the first principal component. It should\n",
    "# be along the principal spread, showing us the\n",
    "# major pattern (correlation) in the data.\n",
    "draw_line(principal_components[:, major_index].numpy(),\n",
    "          min_x=-300, max_x=300)\n",
    "draw_line(principal_components[:, minor_index].numpy(),\n",
    "          min_x=-50, max_x=50, color=\"red\")\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "First Principal Vector is:\n",
      "tensor([[-0.4445],\n",
      "        [-0.8958]])\n",
      "Note: It is a column vector, numpy represents\n",
      "it as a vector of vectors\n",
      "\n",
      "New data set shape: torch.Size([100, 1]) \n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAksAAAHcCAYAAADGNu5kAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjAsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8GearUAAAgAElEQVR4nOzdd3xUVf7/8fckpIckpEAoIdQVEJQ1CIQuoKGJKEUBadJsFFFB3BWwsogiqPSvIiKsCFgQEQxgJyJFQUpYRAg1QQhJqEkg5/cHv8wyZHKZCQkh7uv5eMxD58w5937OvXdm3szcubEZY4wAAADglEdxFwAAAHAjIywBAABYICwBAABYICwBAABYICwBAABYICwBAABYICwBAABYICwBAABYICwBAABYICwBKHYbN25UkyZNFBAQIJvNpl9//bW4SyoU7733nmw2m/bv31+g8f3791eVKlUKtSYA7iMsAX8hNpvNpds333xT3KXaZWdnq3v37kpNTdUbb7yhBQsWKDo6urjLKvFeeeUVffrpp8VdhiRp586dmjBhQoFDI1DcShV3AQAKz4IFCxzuv//++4qPj8/TXrt27etZlqW9e/cqKSlJc+fO1aBBg4q7nL+MV155Rd26dVOXLl2KuxTt3LlTzz//vFq1asUnZSiRCEvAX8iDDz7ocP+nn35SfHx8nvYrnT17Vv7+/kVZWr6OHTsmSQoJCSm0ZZ45c0YBAQGFtjwA/9v4Gg74H9OqVSvVrVtXmzdvVosWLeTv769nn31WkvTZZ5+pY8eOqlChgnx8fFS9enW9+OKLunjxotNl7Ny5U3fccYf8/f1VsWJFvfrqq3nW99Zbb+nmm2+Wv7+/ypQpowYNGmjRokWSLp2T07JlS0lS9+7dZbPZ1KpVK/vYdevWqXnz5goICFBISIjuuece7dq1y2H5EyZMkM1m086dO9WrVy+VKVNGzZo1kyRVqVJFnTp10jfffKMGDRrIz89P9erVs38N+fHHH6tevXry9fVVTEyMfvnllzz1JyYmqlu3bgoNDZWvr68aNGig5cuX5+m3Y8cOtW7dWn5+fqpUqZJeeukl5eTkuLhXpE8//VR169aVr6+v6tatq08++cRpv9dee01NmjRRWFiY/Pz8FBMTo6VLlzr0sdlsOnPmjObPn2//6rV///6SpKSkJD366KO66aab5Ofnp7CwMHXv3j3PV2TZ2dl6/vnnVbNmTfn6+iosLEzNmjVTfHy8W9vnvffeU/fu3SVJd9xxxw35VTBwNXyyBPwPOnHihNq3b68HHnhADz74oMqVKyfp0htbYGCgRo0apcDAQK1bt07jxo1TRkaGJk+e7LCMkydPql27drrvvvvUo0cPLV26VGPGjFG9evXUvn17SdLcuXM1fPhwdevWTSNGjND58+e1bds2bdiwQb169dLQoUNVsWJFvfLKKxo+fLhuv/12ey1r1qxR+/btVa1aNU2YMEHnzp3TW2+9paZNm2rLli15vs7p3r27atasqVdeeUXGGHv777//bl/Xgw8+qNdee0133323Zs2apWeffVaPPvqoJGnixInq0aOHdu/eLQ+PS/+O3LFjh5o2baqKFSvqmWeeUUBAgD766CN16dJFy5Yt07333itJSk5O1h133KELFy7Y+82ZM0d+fn4u7Y+vvvpKXbt2VZ06dTRx4kSdOHFCAwYMUKVKlfL0nTZtmjp37qzevXsrKytLH374obp3764VK1aoY8eOki59HTto0CA1bNhQQ4YMkSRVr15d0qWT6devX68HHnhAlSpV0v79+zVz5ky1atVKO3futH/COGHCBE2cONG+nIyMDG3atElbtmzRnXfe6fL2adGihYYPH64333xTzz77rP0r4Bvpq2DgqgyAv6zHHnvMXPk0b9mypZFkZs2alaf/2bNn87QNHTrU+Pv7m/Pnz+dZxvvvv29vy8zMNJGRkaZr1672tnvuucfcfPPNljV+/fXXRpJZsmSJQ3v9+vVN2bJlzYkTJ+xtW7duNR4eHqZv3772tvHjxxtJpmfPnnmWHR0dbSSZ9evX29tWr15tJBk/Pz+TlJRkb589e7aRZL7++mt7W5s2bUy9evUc5p6Tk2OaNGliatasaW8bOXKkkWQ2bNhgbzt27JgJDg42ksy+ffsst0H9+vVN+fLlTVpamr3tq6++MpJMdHS0Q98r91FWVpapW7euad26tUN7QECA6devX551OdvHCQkJefbnrbfeajp27GhZt6vbZ8mSJXm2LVCS8DUc8D/Ix8dHAwYMyNN++Schp06d0vHjx9W8eXOdPXtWiYmJDn0DAwMdzoXy9vZWw4YN9ccff9jbQkJCdOjQIW3cuNGt+o4ePapff/1V/fv3V2hoqL39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dOiQtm7dKkkaPXq0FixYoHbt2mnEiBH2SwdER0dr27ZtDsscNGiQHn74YXXt2lV33nmntm7dqtWrVys8PNyh39NPP62lS5eqe/fueuihhxQTE6PU1FQtX75cs2bN0q233qo+ffroo48+0sMPP6yvv/5aTZs21cWLF5WYmKiPPvrIfq2a+vXrq2fPnpoxY4bS09PVpEkTrV27Vr///rtL22Hw4MF6++231bdvX23evFnly5fXggUL5O/v79L4axEUFKSZM2eqT58+uu222/TAAw8oIiJCBw4c0BdffKGmTZvq7bffdmuZgwYNUmpqqlq3bq1KlSopKSlJb731lurXr6/atWs7HePl5aVJkyZpwIABatmypXr27Gm/dECVKlX0xBNPuD23jh07asqUKWrXrp169eqlY8eOafr06apRo0ae48YVMTExWrx4sUaNGqXbb79dgYGBuvvuu+2P9+rVS6NHj9Ynn3yiRx55xOFk64Jw9fmRKysrS23atFGPHj20e/duzZgxQ82aNVPnzp2vuq6nn35ay5cvV6dOndS/f3/FxMTozJkz+u2337R06VLt379f4eHhLu1bV5fljpiYGEmXfkQRFxcnT09PPfDAA27t45iYGK1Zs0ZTpkxRhQoVVLVqVTVq1EgvvfSS4uPj1axZMz366KMqVaqUZs+erczMTL366qtu1YnrqDh/igdciylTppjAwECHn/Lm/jx48uTJTsfs3bvX9O3b10RGRhovLy9TsWJF06lTJ7N06VKHftu2bTMtW7Y0vr6+pmLFiubFF18077zzTp5LB1y8eNGMGTPGhIeHG39/fxMXF2d+//33PD8NN8aYEydOmMcff9xUrFjReHt7m0qVKpl+/fqZ48eP2/tkZWWZSZMmmZtvvtn4+PiYMmXKmJiYGPP888+b9PR0e79z586Z4cOHm7CwMBMQEGDuvvtuc/DgQZcuHWCMMUlJSaZz587G39/fhIeHmxEjRphVq1a5fOmAK7dv7k/flyxZ4tCe+zPzjRs35ukfFxdngoODja+vr6levbrp37+/2bRpk8O6AwIC8tQ+fvx4h591L1261Nx1112mbNmyxtvb21SuXNkMHTrUHD16NE99l8/NGGMWL15s/v73vxsfHx8TGhpqevfubQ4dOuTQx9U6jDHmnXfeMTVr1jQ+Pj6mVq1aZt68eU77uXLpgNOnT5tevXqZkJAQI8npZQQ6dOhgJJn169fnecyZwnh+5O7Tb7/91gwZMsSUKVPGBAYGmt69e5sTJ07kmWfHjh2druvUqVNm7NixpkaNGsbb29uEh4ebJk2amNdee81+SQJX9q2ry7Ka+5XPmwsXLphhw4aZiIgIY7PZHPafq/s4MTHRtGjRwvj5+RlJDvt7y5YtJi4uzgQGBhp/f39zxx13uLwPUTxsxrhwVhtwA0pPT1e1atX06quvauDAgcVdDnDd3Xvvvfrtt99c/lSxMORezHPjxo1q0KDBdVsvUJw4ZwklVnBwsEaPHq3Jkyc7/Zd5zdYAACAASURBVFMkwF/Z0aNH9cUXX6hPnz7FXQrwl0dYQok2ZswY+69IgP8F+/bt0wcffKCePXva/zwHgKLFOwwAlCDffvut+vTpo3379mn+/PlOr1cFoHBxzhIAAIAFPlkCAACwQFgCAACwwEUpC0FOTo6OHDmi0qVLF+ofzAQAAEXHGKNTp06pQoUKlj8UIiwVgiNHjvD3fAAAKKEOHjyoSpUq5fs4YakQ5P7V+4MHD/J3fQAAKCEyMjIUFRVlfx/PD2GpEOR+9RYUFERYAgCghLnaKTSc4A0AAGCBsAQAAGCBsAQAAGCBsAQAAGCBsAQAAGCBsAQAAGCBsAQAAGCBsAQAAGCBsAQAAGCBsAQAAGCBsAQAAGCBsAQAAGCBsAQAAGCBsAQAAGCBsAQAAGCBsAQAAGCBsAQAAGCBsAQAAGCBsAQAAGCBsAQAAGCBsAQAAGCBsAQAAGCBsAQAAGCBsAQAAGCBsAQAAGCBsAQAAGCBsAQAAGCBsAQAAGCBsAQAAGCBsAQAAGCBsAQAAGCBsAQAAGCBsAQAAGCBsAQAAGCBsAQAAGCBsAQAAGCBsAQAAGCBsAQAAGCBsAQAAGCBsAQAAGCBsAQAAGCBsAQAAGCBsAQAAGChxIWl6dOnq0qVKvL19VWjRo30888/W/ZfsmSJatWqJV9fX9WrV08rV67Mt+/DDz8sm82mqVOnFnbZAACghCpRYWnx4sUaNWqUxo8fry1btujWW29VXFycjh075rT/+vXr1bNnTw0cOFC//PKLunTpoi5dumj79u15+n7yySf66aefVKFChaKeBgAAKEFKVFiaMmWKBg8erAEDBqhOnTqaNWuW/P399e677zrtP23aNLVr105PP/20ateurRdffFG33Xab3n77bYd+hw8f1rBhw7Rw4UJ5eXldj6kAAIASosSEpaysLG3evFlt27a1t3l4eKht27ZKSEhwOiYhIcGhvyTFxcU59M/JyVGfPn309NNP6+abby6a4gEAQIlVqrgLcNXx48d18eJFlStXzqG9XLlySkxMdDomOTnZaf/k5GT7/UmTJqlUqVIaPny4y7VkZmYqMzPTfj8jI8PlsQAAoGQpMZ8sFYXNmzdr2rRpeu+992Sz2VweN3HiRAUHB9tvUVFRRVglAAAoTiUmLIWHh8vT01MpKSkO7SkpKYqMjHQ6JjIy0rL/999/r2PHjqly5coqVaqUSpUqpaSkJD355JOqUqVKvrWMHTtW6enp9tvBgwevbXIAAOCGVWLCkre3t2JiYrR27Vp7W05OjtauXavY2FinY2JjYx36S1J8fLy9f58+fbRt2zb9+uuv9luFChX09NNPa/Xq1fnW4uPjo6CgIIcbAAD4ayox5yxJ0qhRo9SvXz81aNBADRs21NSpU3XmzBkNGDBAktS3b19VrFhREydOlCSNGDFCLVu21Ouvv66OHTvqww8/1KZNmzRnzhxJUlhYmMLCwhzW4eXlpcjISN10003Xd3IAAOCGVKLC0v33368///xT48aNU3JysurXr69Vq1bZT+I+cOCAPDz++2FZkyZNtGjRIv3zn//Us88+q5o1a+rTTz9V3bp1i2sKAACghLEZY0xxF1HSZWRkKDg4WOnp6XwlBwBACeHq+3eJOWcJAACgOBCWAAAALBCWAAAALBCWAAAALBCWAAAALBCWAAAALBCWAAAALBCWAAAALBCWAAAALBCWAAAALBCWAAAALBCWAAAALBCWAAAALBCWAAAALBCWAAAALBCWAAAALBCWAAAALBCWAAAALBCWAAAALBCWAAAALBCWAAAALBCWAAAALBCWAAAALBCWAAAALBCWAAAALBCWAAAALBCWAAAALBCWAAAALBCWAAAALBCWAAAALBCWAAAALBCWAAAALBCWAAAALBCWAAAALBCWAAAALBCWAAAALBCWAAAALBCWAAAALBCWAAAALBCWAAAALBCWAAAALBCWAAAALBCWAAAALBCWAAAALBCWAAAALBCWAAAALBCWAAAALBCWAAAALBCWAAAALBCWAAAALBCWAAAALBCWAAAALBCWAAAALBCWAAAALBCWAAAA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f6/q1atf6/QAAMBfQLGGJVfVrl1b7dq10+DBgzVr1ixlZ2fr8ccf1wMPPGD/Jdzhw4fVpk0bvf/++2rYsKGCg4M1cOBAjRo1SqGhoQoKCtKwYcMUGxtr/yXclYHo+PHj9vW582s4AADw11UiwpIkLVy4UI8//rjatGkjDw8Pde3aVW+++ab98ezsbO3evVtnz561t73xxhv2vpmZmYqLi9OMGTOKo3wAAFBClYjrLN3ouM4SAAAlz1/qOksAAADFhbAEAABggbAEAABggbAEAABggbAEAABggbAEAABggbAEAABggbAEAABggbAEAABggbAEAABggbAEAABggbAEAABggbAEAABggbAEAABggbAEAABggbAEAABggbAEAABggbAEAABggbAEAABggbAEAABggbAEAABggbAEAABggbAEAABggbAEAABggbAEAABggbAEAABgiitXywAACbpJREFUgbAEAABggbAEAABggbAEAABggbAEAABggbAEAABggbAEAABggbAEAABggbAEAABggbAEAABggbAEAABggbAEAABggbAEAABggbAEAABggbAEAABggbAEAABggbAEAABggbAEAABgoVRxF/BXYIyRJGVkZBRzJQAAwFW579u57+P5ISwVglOnTkmSoqKiirkSAADgrlOnTik4ODjfx23manEKV5WTk6MjR46odOnSstlsxV1Okcn4f+3df0hV9x/H8bfXuv6g3ayZXiylH2sK0yHhLPuxiiQrgxxjI6iBMFyuKzMQ2YSg/sqQiMBWtD+ykOhS/hOUJf2gjHVHy2Vd7cdYzNKZumD+iFXXH+/vH8Pz7Xb1kN9v3rObzwdc5JzzufI+L869vDvn88neXklMTJTW1lZxOBxWlzMhkLk1yN0a5G6NiZy7qkpfX58kJCSIzTb6zCTuLL0BNptNZs2aZXUZQeNwOCbcB8pqZG4NcrcGuVtjouZudkdpGBO8AQAATNAsAQAAmAjfuXPnTquLQOgIDw+XFStWyKRJPMENFjK3Brlbg9ytQe7mmOANAABggsdwAAAAJmiWAAAATNAsAQAAmKBZwqhevHgh6enpEhYWJo2NjX7Hbt++LcuWLZPIyEhJTEyUioqKgPefPHlSUlJSJDIyUtLS0qS2tjZYpYeclpYW+fLLL2XOnDkSFRUl8+bNkx07dojP5/MbR+7B8f33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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkcAAAHcCAYAAADcCg7qAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjAsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8GearUAAAgAElEQVR4nOzdeVjUVfs/8Pcw7MuAIAo6KIqmopjfNBMUxBUUt2RxTdyyAhU0l2xTy6U0FbJMbUGrR41lUjNTScUotc0Wc3vSRJTcFwYVQWbO7w9/Mw/DDDDDPvB+XRfXJWfO+cz9mRmd27NKhBACRERERAQAsKjtAIiIiIjqEiZHRERERMUwOSIiIiIqhskRERERUTFMjoiIiIiKYXJEREREVAyTIyIiIqJimBwRERERFcPkiIiIiKgYJkdE1eTnn39GQEAAHBwcIJFI8Pvvv9d2SFVi06ZNkEgkyMrKqlD7iRMnwtvbu0pjMgeLFi2CRCKp7TB0ZGVlQSKRYNOmTRVqL5FIsGjRoiqNqaTg4GAEBwdX63MQlcTkiOo8iURi1E9GRkZth6r18OFDREZG4tatW1izZg0+++wztGzZsrbDMnvLli3D9u3bazsMAMDJkyexaNGiCieJRFR3WdZ2AETl+eyzz3R+//TTT5Genq5X3qFDh5oMq0znzp3DhQsX8OGHH2Lq1Km1HU69sWzZMkRERGDEiBG1HQpOnjyJxYsXIzg42KiesFdffRUvvfRS9QdmgpYtWyI/Px9WVlYVap+fnw9LS36NUP3DTzXVeePHj9f5/ejRo0hPT9crL+n+/fuwt7evztBKde3aNQCAi4tLlV3z3r17cHBwqLLrUc2ytLSsM4lEUVER1Go1rK2tYWtrW+HrVKYtUV3GYTWqF4KDg9GpUyf8+uuvCAoKgr29PV5++WUAwI4dOxAWFoZmzZrBxsYGPj4+ePPNN6FSqQxe4+TJk+jTpw/s7e3RvHlzrFixQu/51q5di44dO8Le3h6NGjVCt27dsGXLFgCP5tT07t0bABAZGQmJRKIzZ+LAgQMIDAyEg4MDXFxcMHz4cJw6dUrn+pr5KSdPnsTYsWPRqFEj9OrVCwDg7e2NIUOGICMjA926dYOdnR38/Py0w4oKhQJ+fn6wtbVF165d8dtvv+nFf/r0aURERMDV1RW2trbo1q0bdu7cqVfvxIkT6Nu3L+zs7CCXy7FkyRKo1Woj3xVg+/bt6NSpE2xtbdGpUyd8+eWXBuu98847CAgIgJubG+zs7NC1a1ekpqbq1JFIJLh37x42b96sHUqdOHEiAODChQuIiYlBu3btYGdnBzc3N0RGRuoNeT18+BCLFy9G27ZtYWtrCzc3N/Tq1Qvp6ekmvT6bNm1CZGQkAKBPnz5GDe0amnMkkUgwffp07etkY2ODjh07Ys+ePWW9rFrXrl3DlClT0LRpU9ja2uLxxx/H5s2bdepo5hW98847SEhIgI+PD2xsbHDy5MlS5xylpKTA19dX530zNFes5JwjzT2ePXsWEydOhIuLC5ydnTFp0iTcv39fp21SUhL69u2LJk2awMbGBr6+vvjggw+Mum9D0tPT0atXL7i4uMDR0RHt2rXT/hsAABkZGZBIJPjiiy/w8ssvw8PDAw4ODhg2bBguXryoc63MzExERkaiRYsWsLGxgZeXF2bNmoX8/Hy95z19+jSioqLg7u4OOzs7tGvXDq+88opOnZycHEyePBlNmzbVvseffPJJhe+Vql/d+G8MURW4efMmBg0ahNGjR2P8+PFo2rQpgEdfZI6Ojpg9ezYcHR1x4MABvP7661AqlVi5cqXONW7fvo3Q0FCMHDkSUVFRSE1Nxfz58+Hn54dBgwYBAD788EPMnDkTERERiIuLw4MHD/Dnn3/ixx9/xNixY/Hcc8+hefPmWLZsGWbOnIknn3xSG8u3336LQYMGoXXr1li0aBHy8/Oxdu1a9OzZE8eOHdP78omMjETbtm2xbNkyCCG05WfPntU+1/jx4/HOO+9g6NChWL9+PV5++WXExMQAAJYvX46oqCicOXMGFhaP/i904sQJ9OzZE82bN8dLL70EBwcHJCcnY8SIEUhLS8PTTz8NALhy5Qr69OmDoqIibb2NGzfCzs7OqPdj3759CA8Ph6+vL5YvX46bN29i0qRJkMvlenUTExMxbNgwjBs3DoWFhdi2bRsiIyOxa9cuhIWFAXg0vDp16lR0794d06ZNAwD4+PgAeDT5/fDhwxg9ejTkcjmysrLwwQcfIDg4GCdPntT2IC5atAjLly/XXkepVOKXX37BsWPHMGDAAKNfn6CgIMycORPvvvsuXn75Ze2QbkWGdr///nsoFArExMTAyckJ7777LsLDw5GdnQ03N7dS2+Xn5yM4OBhnz57F9OnT0apVK6SkpGDixIm4c+cO4uLidOonJSXhwYMHmDZtGmxsbODq6mow0f36668xatQo+Pn5Yfny5bh9+zamTJmC5s2bG31PUVFRaNWqFZYvX45jx47ho48+QpMmTfD2229r63zwwQfo2LEjhg0bBktLS3z11VeIiYmBWq1GbGys0c8FPHrPhgwZgs6dO+ONN96AjY0Nzp49ix9++EGv7tKlSyGRSDB//nxcu3YNCQkJ6N+/P37//XftZzslJQX379/HCy+8ADc3N/z0009Yu3YtLl26hJSUFO21/vzzTwQGBsLKygrTpk2Dt7c3zp07h6+++gpLly4FAFy9ehU9evTQJsLu7u745ptvMGXKFCiVSsTHx5t0r1RDBJGZiY2NFSU/ur179xYAxPr16/Xq379/X6/sueeeE/b29uLBgwd61/j000+1ZQUFBcLDw0OEh4dry4YPHy46duxYZowHDx4UAERKSopOeZcuXUSTJk3EzZs3tWV//PGHsLCwEBMmTNCWLVy4UAAQY8aM0bt2y5YtBQBx+PBhbdnevXsFAGFnZycuXLigLd+wYYMAIA4ePKgt69evn/Dz89O5d7VaLQICAkTbtm21ZfHx8QKA+PHHH7Vl165dE87OzgKAOH/+fJmvQZcuXYSnp6e4c+eOtmzfvn0CgGjZsqVO3ZLvUWFhoejUqZPo27evTrmDg4OIjo7Wey5D7/GRI0f03s/HH39chIWFlRm3sa9PSkqK3mtbFs17WhwAYW1tLc6ePast++OPPwQAsXbt2jKvl5CQIACIzz//XFtWWFgo/P39haOjo1AqlUIIIc6fPy8ACJlMJq5du6ZzDc1jSUlJ2jI/Pz8hl8tFXl6etiwjI8Pg+wZALFy4UO8eJ0+erFPv6aefFm5ubjplht6zkJAQ0bp1a52y3r17i969e5f6OgghxJo1awQAcf369VLraP5ONm/eXPvaCCFEcnKyACASExPLjG358uVCIpHo/P0KCgoSTk5OOmVCPPq8aEyZMkV4enqKGzdu6NQZPXq0cHZ2NvhcVPs4rEb1ho2NDSZNmqRXXrynIy8vDzdu3EBgYCDu37+P06dP69R1dHTUmctkbW2N7t27459//tGWubi44NKlS/j5559Niu/y5cv4/fffMXHiRLi6umrLO3fujAEDBmD37t16bZ5//nmD1/L19YW/v7/296eeegoA0LdvX7Ro0UKvXBP/rVu3cODAAURFRWlfixs3buDmzZsICQnB33//jZycHADA7t270aNHD3Tv3l17PXd3d4wbN87oe42Ojoazs7O2fMCAAfD19dWrX/w9un37NnJzcxEYGIhjx46V+1wl2z98+BA3b95EmzZt4OLionMNFxcXnDhxAn///bfB65jy+lSV/v37a3vAgEefB5lMpvOZM2T37t3w8PDAmDFjtGVWVlaYOXMm7t69i0OHDunUDw8Ph7u7e5nX/Pfff3H8+HFMmDABjo6O2vLevXvDz8/P6Hsq+bkNDAzEzZs3oVQqtWXF37Pc3FzcuHEDvXv3xj///IPc3Fyjnwv439y+HTt2lDvsO2HCBDg5OWl/j4iIgKenp87fv+Kx3bt3Dzdu3EBAQACEENph6uvXr+O7777D5MmTdf7OAdAOnwohkJaWhqFDh0IIof083bhxAyEhIcjNzTX6M041i8kR1RvNmzeHtbW1XvmJEyfw9NNPw9nZGTKZDO7u7toEqOQ/wnK5XG9eSKNGjXD79m3t7/Pnz4ejoyO6d++Otm3bIjY21mD3fUkXLlwAALRr107vsQ4dOuDGjRu4d++eTnmrVq0MXqvkP8aaBMTLy8tguSb+s2fPQgiB1157De7u7jo/CxcuBPC/yeQXLlxA27Zt9Z7bUPwlae7V2Pa7du1Cjx49YGtrC1dXV7i7u+ODDz4w+ksyPz8fr7/+Ory8vGBjY4PGjRvD3d0dd+7c0bnGG2+8gTt37uCxxx6Dn58f5s6diz///FP7uCmvT1Up+V4C+p85QzTvj2a4VEMztKd5DzRK+yyVvCYAtGnTRu8xQ2WlKXlPjRo1AgCde/rhhx/Qv39/7dw7d3d37RwhU5OjUaNGoWfPnpg6dSqaNm2K0aNHIzk52WCiVPIzKZFI0KZNG535adnZ2dr/xDg6OsLd3V07j1ATmyZ57dSpU6lxXb9+HXfu3MHGjRv1Pk+a/8hV9eeJqgbnHFG9YWguzJ07d9C7d2/IZDK88cYb8PHxga2tLY4dO4b58+fr/eMplUoNXlsUm+/ToUMHnDlzBrt27cKePXuQlpaGdevW4fXXX8fixYur/Z7KirO8+DX3O2fOHISEhBisa8qXYFXIzMzEsGHDEBQUhHXr1sHT0xNWVlZISkrSTnIvz4wZM5CUlIT4+Hj4+/vD2dkZEokEo0eP1nmPg4KCcO7cOezYsQP79u3DRx99hDVr1mD9+vWYOnVqrbw+xnzmqoKxc8WqQnn3dO7cOfTr1w/t27fH6tWr4eXlBWtra+zevRtr1qwxadI/8OjevvvuOxw8eBBff/019uzZgy+++AJ9+/bFvn37So3HEJVKhQEDBuDWrVuYP38+2rdvDwcHB+Tk5GDixIkmxaapO378eERHRxus07lzZ6OvRzWHyRHVaxkZGbh58yYUCgWCgoK05efPn6/UdR0cHDBq1CiMGjUKhYWFGDlyJJYuXYoFCxaUurxZswnkmTNn9B47ffo0GjduXO1L9Vu3bg3g0fBL//79y6zbsmVLg8NPhuI31BaAUe3T0tJga2uLvXv3wsbGRluelJSk17a0HaZTU1MRHR2NVatWacsePHiAO3fu6NV1dXXFpEmTMGnSJNy9exdBQUFYtGgRpk6datLrU9u7Xbds2RJ//vkn1Gq1Tu+RZqi4IpuOatqcPXtW7zFDZRX11VdfoaCgADt37tTpZTp48GCFr2lhYYF+/fqhX79+WL16NZYtW4ZXXnkFBw8e1HkvS34mhRA4e/asNkk5fvw4/vvf/2Lz5s2YMGGCtl7JFY2az8pff/1Vakzu7u5wcnKCSqUq9/NEdQuH1ahe0/yPsfj/wgsLC7Fu3boKX/PmzZs6v1tbW8PX1xdCCDx8+LDUdp6enujSpQs2b96s86X9119/Yd++fRg8eHCFYzJWkyZNEBwcjA0bNuDy5ct6j1+/fl3758GDB+Po0aP46aefdB7/z3/+U+7zFL/X4kMk6enpOHnypE5dqVQKiUSis7VCVlaWwZ2wHRwcDCY8UqlUr6dl7dq1ets1lHzvHB0d0aZNGxQUFAAw7fXRJLKG4qkJgwcPxpUrV/DFF19oy4qKirB27Vo4Ojpqh4FM0axZM3Tq1Amffvop7t69qy0/dOgQjh8/XiVxA4b/Xubm5hpMiI1x69YtvbIuXboAgPa91fj000+Rl5en/T01NRWXL1/WrkY1FJsQAomJiTrXcXd3R1BQED755BNkZ2frPKZpK5VKER4ejrS0NINJVPHPE9Ut7Dmiei0gIACNGjVCdHQ0Zs6cCYlEgs8++6xSQxYDBw6Eh4cHevbsiaZNm+LUqVN47733EBYWpjPR05CVK1di0KBB8Pf3x5QpU7RL+Z2dnav9jCqN999/H7169YKfnx+effZZtG7dGlevXsWRI0dw6dIl/PHHHwCAefPm4bPPPkNoaCji4uK0S/k1PRblWb58OcLCwtCrVy9MnjwZt27d0u4PVfyLNywsDKtXr0ZoaCjGjh2La9eu4f3330ebNm30nqdr16749ttvsXr1ajRr1gytWrXCU089hSFDhuCzzz6Ds7MzfH19ceTIEXz77bd6S+F9fX0RHByMrl27wtXVFb/88gtSU1Mxffp0k1+fLl26QCqV4u2330Zubi5sbGy0+/bUhGnTpmHDhg2YOHEifv31V3h7eyM1NRU//PADEhISyv0slmbZsmUYPnw4evbsiUmTJuH27dt477330KlTJ533rTIGDhwIa2trDB06FM899xzu3r2LDz/8EE2aNDGYlJbnjTfewHfffYewsDC0bNkS165dw7p16yCXy7X7g2m4urqiV69emDRpEq5evYqEhAS0adMGzz77LACgffv28PHxwZw5c5CTkwOZTIa0tDSDc8Deffdd9OrVC0888QSmTZuGVq1aISsrC19//bX2LMW33noLBw8exFNPPYVnn30Wvr6+uHXrFo4dO4Zvv/3WYGJHdUBNL48jqqzSlvKXtrz+hx9+ED169BB2dnaiWbNmYt68edql78WXYZd2jejoaJ0lzBs2bBBBQUHCzc1N2NjYCB8fHzF37lyRm5urrVPaUn4hhPj2229Fz549hZ2dnZDJZGLo0KHi5MmTOnU0S6INLU1u2bKlweXoAERsbKxOmWap9sqVK3XKz507JyZMmCA8PDyElZWVaN68uRgyZIhITU3Vqffnn3+K3r17C1tbW9G8eXPx5ptvio8//tiopfxCCJGWliY6dOggbGxshK+vr1AoFHqvpxBCfPzxx6Jt27bCxsZGtG/fXiQlJRlc+n769GkRFBQk7OzsBADtsv7bt2+LSZMmicaNGwtHR0cREhIiTp8+LVq2bKmz9H/JkiWie/fuwsXFRdjZ2Yn27duLpUuXisLCwgq9Ph9++KFo3bq1kEql5S7rL20pf8n3TAihF3dprl69qr1va2tr4efnp7MsX4jSPwPFHyvZZtu2baJ9+/bCxsZGdOrUSezcuVOEh4eL9u3b68VvaCl/yc9tUlKS3mdm586donPnzsLW1lZ4e3uLt99+W3zyySd69YxZyr9//34xfPhw0axZM2FtbS2a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ZQt69eoFmUxmsK1SqURRUZFOmZ+fHywsLLRDlcber7Fu376tdx1Nb0xZR27069cPlpaW+OCDD3TK33vvPb26gwcPxk8//YQjR45oy+7du4eNGzfC29sbvr6+JsXctWtX+Pj44J133sHdu3f1Hr9+/bpe2bFjxxAQEGDS8xDVFvYcEZmR1q1bo1OnTvj222919sEJCwvD6tWrERoairFjx+LatWt4//330aZNG/z555/ael26dMGYMWOwbt065ObmIiAgAPv37ze4h83ixYuxZ88eBAYGIiYmBkVFRVi7di06duyoc00fHx8sWbIEC+/ixhQAACAASURBVBYsQFZWFkaMGAEnJyecP38eX375JaZNm4Y5c+bAysoKS5YswXPPPYe+ffti1KhROH/+PJKSkkyac2SMJUuWID09Hb169UJMTAwsLS2xYcMGFBQUYMWKFaW2O3DgAKZPn47IyEg89thjKCoqwmeffQapVIrw8HCT7tdYmzdvxrp16/D000/Dx8cHeXl5+PDDDyGTyTB48OBS2zVt2hRxcXFYtWoVhg0bhtDQUPzxxx/45ptv0LhxY525PS+99BK2bt2KQYMGYebMmXB1dcXmzZtx/vx5pKWlmbwJpoWFBT766CMMGjQIHTt2xKRJk9C8eXPk5OTg4MGDkMlk+Oqrr7T1f/31V9y6dQvDhw836XmIak3tLJIjoopavXq1cHR01Fu6//HHH4u2bdsKGxsb0b59e5GUlCQWLlwoSv41z8/PFzNnzhRubm7CwcFBDB06VFy8eFFvKb8QQhw6dEh07dpVWFtbi9atW4v169cbvKYQQqSlpYlevXoJBwcH4eDgINq3by9iY2PFmTNndOqtW7dOtGrVStjY2Ihu3bqJ7777TvTu3dvopfyxsbF65S1bttRZui6EEMeOHRMhISHC0dFR2Nvbiz59+ojDhw/r1Cm5lP+ff/4RkydPFj4+PsLW1la4urqKPn36iG+//bbC91tSyaX8x44dE2PGjBEtWrQQNjY2okmTJmLIkCHil19+Kff1KCoqEq+99prw8PAQdnZ2om/fvuLUqVPCzc1NPP/88zp1z507JyIiIoSLi4uwtbUV3bt3F7t27TL4epTcyuD8+fMCgEhKStIp/+2338TIkSOFm5ubsLGxES1bthRRUVFi//79OvXmz58vWrRoobPsn6gukwjBw26I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hj7yn6ioKI0bN87r79zpdGrPnj38nfcCI0eOVGJiolf/2O127d+/390/mZmZOn36tA4cOOBus3fvXjmdTk2cONHvNYciY4wefvhhvfLKK9q7d69GjhzptX3cuHHq27evVz8dOXJEx44d8+qny33+BVSgR4Sj+44fP26uv/56M3nyZHP8+HFz8uRJ98vl9OnTZujQoebXv/61qaurM1u3bjWxsbFmw4YN7jZvvfWW6dOnj3n66adNfX29Wb58uenbt685dOhQIA4r5Hz66aemtrbW/OEPfzD9+/c3tbW1pra21rS1tRljjLlw4YJJT083U6ZMMe+//76pqKgwCQkJZunSpe59fPLJJyY2NtYsXrzY1NfXm+eee85ERkaaioqKQB1WyNu6dauJjo42mzdvNh9++KGZP3++iY+P97qrBj2nra3N/bsiyTzzzDOmtrbWfPrpp8YYY5566ikTHx9vXn31VXPw4EFz5513mpEjR5qzZ8+695Gfn29++MMfmv3795t//vOf5oYbbjCzZ88O1CGFnAcffNDExcWZqqoqr++fb775xt3mgQceMCkpKWbv3r3m3XffNZmZmSYzM9O93ZfPv0AiHAWhTZs2GUmdvjx98MEH5qc//amJjo42w4cPN0899VSHfW3fvt3ceOONJioqytx8883mr3/9q78OI+Tde++9nfbR66+/7m7T2Nhofvazn5l+/fqZwYMHm0WLFpnz58977ef11183GRkZJioqyowaNcps2rTJvwcShtauXWtSUlJMVFSUmTBhgnn77bcDXVLYeP311zv9vbn33nuNMd/dzv/73//eDB061ERHR5vJkyebI0eOeO3jyy+/NLNnzzb9+/c3VqvV3Hfffe7/KcHVu9T3j+dn09mzZ81DDz1kBg4caGJjY82vfvUrr/+BN8a3z79AsRhjjB9PVAEAAPRqjDkCAADwQDgCAADwQDgCAADwQDgCAADwQDgCAADwQDgCAADwQDgCAADwQDgCAADwQDgCAADwQDgCAADwQDgCAADwQDgCENY+//xzJSYm6sknn3Sv27dvn6KiorRnz54AVgYgUHjwLICwt3v3bhUUFGjfvn1KS0tTRkaG7rzzTj3zzDOBLg1AABCOAEBSYWGh/vGPf2j8+PE6dOiQ3nnnHUVHRwe6LAABQDgCAElnz55Venq6mpqadODAAY0dOzbQJQEIEMYcAYCkjz/+WCdOnJDT6VRjY2OgywEQQJw5AhD22tvbNWHCBGVkZCgtLU1r1qzRoUOHNGTIkECXBiAACEcAwt7ixYtVVlamDz74QP3799ftt9+uuLg47dq1K9ClAQgALqsBCGtVVVVas2aNXnjhBVmtVkVEROiFF15QdXW11q1bF+jyAAQAZ44AAAA8cOYIAADAA+EIAADAA+EIAADAA+EIAADAA+EIAADAA+EIAADAA+EIAADAA+EIAADAA+EIAADAA+EIAADAA+EIAADAA+EIAADAw/8DTzxG/MfHvbUAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Loss in Information due to\n",
      "dimensionality reduction: 5.570886135101318\n"
     ]
    }
   ],
   "source": [
    "# Dimensionality reduction using PCA\n",
    "# With our previous example, we can clearly see that \n",
    "# one principal component accounts for majority of\n",
    "# the variance.\n",
    "# So we can convert this 2D dataset into 1D by\n",
    "# projecting onto the first prinicipal component\n",
    "first_princpal_vec = principal_components[:,\n",
    "                                          major_index]\n",
    "first_princpal_vec = first_princpal_vec.reshape((-1, 1))\n",
    "print(\"First Principal Vector is:\\n{}\\n\"\n",
    "      \"Note: It is a column vector, numpy represents\\n\"\n",
    "      \"it as a vector of vectors\\n\".\n",
    "      format(first_princpal_vec))\n",
    "\n",
    "# Project all the data vectors (row vectors of X)\n",
    "#  onto the first principal vector.\n",
    "# This means take dot product of each data vector\n",
    "# with the first principal vector.\n",
    "X_proj = torch.matmul(X, first_princpal_vec)\n",
    "print(\"New data set shape: {} \".\\\n",
    "      format(X_proj.shape))\n",
    "\n",
    "# Let us plot the projected data\n",
    "plt.figure(1)\n",
    "plt.title('Transformed dataset\\n'\n",
    "          '(reduced dimensionality representato')\n",
    "plt.scatter(X_proj[:, 0],\n",
    "            np.zeros_like(X_proj[:, 0]))\n",
    "plt.xlabel('x')\n",
    "plt.ylabel('y')\n",
    "plt.show()\n",
    "\n",
    "# Note that this data is in terms of the new axes. \n",
    "# To view this in the original space, we'll need to project  \n",
    "# it back into our original space.\n",
    "# The back projection entails  some loss of information.\n",
    "# But in this case, what we lose is noise. The back projected\n",
    "# data is in fact the true underlying data sans noise.\n",
    "\n",
    "#We use np.linalg.pinv to compute pseudo inverse\n",
    "X_back_proj = torch.matmul(X_proj,\n",
    "                torch.linalg.pinv(first_princpal_vec))\n",
    "\n",
    "plt.figure(2)\n",
    "plt.title('Transformed dataset in original space\\n'\n",
    "          '(added noise is gone)')\n",
    "plt.scatter(X_back_proj[:, 0], X_back_proj[:, 1],\n",
    "            color=\"green\")\n",
    "plt.xlabel('x')\n",
    "plt.ylabel('y')\n",
    "plt.show()\n",
    "\n",
    "# Information lost due to dimensionality reduction.\n",
    "# (here we've lost only noise)\n",
    "info_loss = torch.sqrt(torch.mean((X_back_proj - X)**2))\n",
    "print(\"Loss in Information due to\\ndimensionality\"\n",
    "      \" reduction: {}\".format(info_loss))"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
